// 真正创建节点。将vnode创建为dom，并将新创建的dom放入属性vnode.elm中，在这个函数里不进行插入--为了更好的递归处理子节点

export default function createElement(vnode) {
  // 先创建一个dom节点
  let domNode = document.createElement(vnode.sel);
  // 判断这个节点是否是text还是childre
  if (vnode.text != '' && (vnode.children === undefined || vnode.children.length === 0)) {
    // 内部是文本
    domNode.innerText = vnode.text;

  }  else if (Array.isArray(vnode.children) && vnode.children.length > 0) {
    // 递归处理内部子节点
    for (let i = 0; i < vnode.children.length; i++) {
      let childDom = createElement(vnode.children[i]);
      domNode.appendChild(childDom);
    }
  } 
  // 将创建好的dom放入vnode.elm属性中
  vnode.elm = domNode;
  // 返回vnode.elm即纯dom对象
  return vnode.elm;
}